(() => {
    // 类 类型：类的类型可以通过接口来实现
    // 定义一个接口
  interface IFly{
      // 该方法没有任何的实现
      fly():any
  }

    // 定义一个类，这个类的类型就是上面定义的接口
    class Person implements IFly {
        // 实现接口中的方法
        fly() {
            console.log('我会飞了，我是超人')
        }
    }

    // 实例化对象
    const person = new Person()
    person.fly()

    // 定义一个接口
    interface ISwim {
        swim():any
    }

    class Person2 implements IFly, ISwim {
        fly() {
            console.log('我飞了')
        }
        swim() {
            console.log('我游了')
        }
    }

    //　实例化对象
    const person2 = new Person2()
    person2.fly()
    person2.swim()

    // 定义一个接口继承其它接口
    interface IMyFlyAndSwim extends IFly, ISwim {}
    // 定义一个类，直接实现IMyFlyAndSwim方法
    class Person3 implements IMyFlyAndSwim {
        fly() {
            console.log('我飞了3')
        }
        swim() {
            console.log('我游了3')
        }
    }
    //　实例化对象
    const person3 = new Person3()
    person3.fly()
    person3.swim()
})()